原名 GPT Index是一個專門為 LLM 提供資料接入與檢索能力的框架,它讓大型語言模型可以讀取外部資料(PDF、資料庫、網站),並建立可查詢的索引(Index),讓 AI 能更精確地回答問題
[ 資料來源:PDF / DB / Web ]
↓ (Data Loader)
[ 資料分塊 & 向量化 Embedding ]
↓ (Index 建立)
[ 向量索引庫 Vector Store ]
↓ (Retriever 檢索)
[ LLM 查詢引擎 Query Engine ]
↓
[ AI 回答問題 ]
pip install llama-index
# 如果要用 Ollama
pip install llama-index-llms-ollama
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms.ollama import Ollama
# 1. 載入文件資料
documents = SimpleDirectoryReader("data").load_data()
# 2. 初始化本地 LLM(Ollama)
llm = Ollama(model="llama3")
# 3. 建立索引
index = VectorStoreIndex.from_documents(documents, llm=llm)
# 4. 建立查詢引擎
query_engine = index.as_query_engine()
# 5. 問問題
response = query_engine.query("請用中文總結文件內容")
print(response)
data 資料夾中可放多個 .txt 或 .pdf 文件,LlamaIndex 會自動讀取並建立索引。
LlamaIndex 可以作為 LangChain 的檢索器(Retriever),負責資料讀取與檢索,LangChain 負責流程控制與多 Agent 協作
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI
# LlamaIndex 建索引
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
retriever = index.as_retriever()
# LangChain QA Chain
llm = ChatOpenAI(model="gpt-4o-mini")
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
result = qa_chain.run("文件中提到的三個重點是什麼?")
print(result)